<!--
 * @Author: JPeng 872639397@qq.com
 * @Date: 2022-05-14 22:54:18
 * @LastEditors: JPeng 872639397@qq.com
 * @LastEditTime: 2022-05-14 22:57:58
 * @FilePath: \review-review-review\复习！！！\Promise\all.html
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        let wake = (time) => {
            return new Promise(function (resolve, reject) {
                setTimeout(() => {
                    // resolve(`${time / 1000}后醒来`);
                    reject("我失败了")
                }, time);
            });
        }
        let p1 = wake(10000);
        let p2 = wake(1000);
        let result = Promise.all([p1, p2]).then(res => {
            let [res1, res2] = res;
            console.log(res1, res2);
        }).catch(err => {
            console.log(123);
            console.log(err);
        })
        console.log(result);

        // Promise.all 参数是一个Promise实例组成的数组，依次执行，当其中的所有实例全部成功时，返回成功的值数组
        // 当有一个失败时，返回最先失败的值 （同时也是一个Promise对象，只是值不同）；
        // 场景：比如当一个页面需要在很多个模块的数据都返回回来时才正常显示，否则loading。
    </script>
</body>

</html>